/**
 * Created by sunji180 on 2016/2/17.
 */
;(function($) {
    $.fn.extend({
        "alterBgColor":function(options){
            //设置默认值
            options=$.extend({
                odd:"odd",	/* 偶数行样式*/
                even:"even", /* 奇数行样式*/
                selected:"selected" /* 选中行样式*/
            },options);
            $("tbody>tr:odd",this).addClass(options.odd);
            $("tbody>tr:even",this).addClass(options.even);
            $('tbody>tr',this).click(function() {
                //判断当前是否选中
                var hasSelected=$(this).hasClass(options.selected);
                //如果选中，则移出selected类，否则就加上selected类
                $(this)[hasSelected?"removeClass":"addClass"](options.selected)
                    //查找内部的checkbox,设置对应的属性。
                    .find(':checkbox').prop('checked',!hasSelected);
//                  .find(':checkbox').attr('checked',!hasSelected);
//                        attr方法只能生效一次，使用prop方法替换之。
//                        http://stackoverflow.com/questions/15266533/jquery-attrchecked-checked-works-only-once
//                        简言之，jQuery建议使用prop代替attr
            });
            // 如果单选框默认情况下是选择的，则高色.
            $('tbody>tr:has(:checked)',this).addClass(options.selected);
            return this;  //返回this，使方法可链。
        }
    });
})(jQuery);